package libx

import "os"

// Sel 是一个泛型函数，用于根据环境选择生产环境或开发环境的配置
// 参数：
//     pro T: 生产环境的配置
//     dev T: 开发环境的配置
// 返回值：
//     T: 根据当前环境返回生产环境或开发环境的配置

var envKey = "BWH_ENV"

func SetEnvKey(key string) {
	envKey = key
}

func EnvSel[T any](proVal T, devVal T) T {
	if IsPro() {
		return proVal
	}
	return devVal
}

func EnvAllSel[T any](proVal T, devVal T, preVal T) T {
	if IsPro() {
		return proVal
	}
	if IsPre() {
		return preVal
	}
	return devVal
}

func IsPro() bool {
	return os.Getenv(envKey) == "1"
}

func IsPre() bool {
	return os.Getenv(envKey) == "0"
}

func IsDev() bool {
	return os.Getenv(envKey) == ""
}
